package fichiers;

import Composite.*;
import java.io.*;

public class FabriqueFichierDisqueDur implements FabriqueFichier{

    private static FabriqueFichier maFabrique;
    
    public Element constructionFichier(Element pere,File fichier) {

        Element nouveau=null;
        String nom = fichier.getName();
        
        if(fichier.isDirectory()){
            
            nouveau=new Dossier(pere, fichier, nom);
        }
        else if(nom.endsWith(".jpg") ||
                nom.endsWith(".jpeg") ||
                nom.endsWith(".JPEG") ||
                nom.endsWith(".JPG") ||
                nom.endsWith(".jpe")){

            String nomSansIndex=nom.substring(0, nom.lastIndexOf('.'));
            nouveau = new JPEG(pere,fichier,nomSansIndex);
        }
        else if(nom.endsWith(".gif") ||
                nom.endsWith(".GIF")){
            String nomSansIndex=nom.substring(0, nom.lastIndexOf('.'));
            nouveau = new GIF(pere,fichier,nomSansIndex);
        }
        else if(nom.endsWith(".bmp") ||
                nom.endsWith(".BMP")){
            String nomSansIndex=nom.substring(0, nom.lastIndexOf('.'));
            nouveau= new BMP(pere,fichier,nomSansIndex);
        }
        else if(nom.endsWith(".png") ||
                nom.endsWith(".PNG")){
            String nomSansIndex=nom.substring(0, nom.lastIndexOf('.'));
            nouveau = new PNG(pere,fichier,nomSansIndex);
        }
        
        return nouveau;
    }

    public static FabriqueFichier getInstance(){
        
        if(maFabrique==null) maFabrique=new FabriqueFichierDisqueDur();
        
        return maFabrique;
    }
}
